Packer-Kurs 1/2

von
Andreas Schlick

Dieser Kurs widmet sich in zwei Teilen den Packern/Archivern. Im ersten Teil werde ich die meistverbreitetsten Packer kurz vorstellen und einen Geschwindigkeitsvergleich machen. Im zweiten Teil geht es um die Bedienung und die Optionen.

LhA

Der Standard-Packer auf dem Amiga ist wohl LhA. Die meistgenutzte Portierung stammt von Stefan Boberg. Leider entwickelt er den Amiga-Port nicht mehr weiter, so daß die letzte Version V1.38 (unreg.) von 1992 ist.

Der Unix-LhA-Sourcecode ist zwar frei erhältlich, so daß ein einfaches recompilen kein Problem sein sollte, allerdings hatte Stefan noch starke Optimierungen für den Amiga gemacht. Desweiteren unterstützt diese Portierung noch die Amiga-Dateikommentare und Schutzbits.

LhA ist Shareware. Leider gab Stefan Boberg trotz eingestellter Entwicklung den Key nicht frei. Ob überhaupt noch Registrierungen angenommen werden, ist mir nicht bekannt, jedoch halte ich es für sehr unwahrscheinlich.

Ein Zusatztool zu LhA bzw. als Feature der registrierten Version gab/gibt es noch LhASFX, mit dem man SelFeXtracting (dt. selbstentpackende) Archive erstellen kann/konnte. Jedoch soll die verwendete Routine des Tools fehlerhaft sein, so daß ich von der Verwendung stark abraten würde.

Postfix der Archive: .lha

LZX

LZX hätte der Standard-Packer werden können. Leider verkaufte der Entwickler Jonathan Forbes (zusammen mit Tomi Poutanen) den Algorithmus und damit verlor leider der Amiga (mal wieder) ein wirklich gutes Programm. Insbesondere der LZX-2 Algorithmus wäre sehr interessant geworden. Wer die Käufer waren, überlasse ich der Fantasy des nicht-informierten Lesers. :-) oder meines Erachtens eher ;-((

Vor ein paar Tagen konnte J. Forbes jedoch zumindest überredet werden, das LZX-Keyfile der Allgemeinheit zur Verfügung zu stellen, so daß auch die registrierte Version von LZX benutzt werden kann. Die letzte Version ist V1.21(r).

Postfix der Archive: .lzx

ZIP

Auf dem PC eigentlich DER Standardarchiver. Seine Packraten sind sehr gut. Der ZIP-Algorithmus hat verschiedene Anwendung gefunden, einmal als der hier erwähnte Archiver, desweiteren noch in GZIP und für den Amiga gibt es noch die ebenfalls erwähnenswerte XPKGZIP.library für das bekannte XPK-Paket.

Postfix der Archive: .zip

GZip/Tar

Dieses Gespann stammt aus der Unix-Welt. Tar ist ein reiner Filearchiver ohne Kompression. Mit Hilfe von tar werden die verschiedene Files zusammengefügt (nein, es ist kein Join-Kommando). Das entstehende Tar-Archive wird dann meist mit GZip gepackt.

Die umgekehrte Reihenfolge (erst GZip, dann Tar) ist weniger sinnvoll, da dann GZip nur fileweise komprimieren kann, während sonst ja ein fileübergreifendes Komprimieren stattfindet, was teils zu erheblich besseren Kompressionsraten führen kann.

Aufgrund der Unix-Abstammung sind auch die Amiga-Portierungen etwas umständlich zu bedienen. Die Bedienung und Optionen werden im zweiten Kursteil besprochen.

Falls jemand einen einfachen Entpacker für Tar/GZIP Archive benötigt, sollte er sich UnTGZ von Oliver Wagner anschauen.

Postfix der Archive: .tgz
.tar.gzip

compress

Eine weitere Unix-Abstammung, die jedoch nur einen einfacheren Algorithmus zum Komprimieren benutzt. Eine Amiga-Portierung existiert, jedoch läßt sich sich der Unix-Sourcecode auch portieren.

Postfix der Archive: .Z

Arj

Arj ist ein im PC-Sektor recht verbreiteter Packer. Für den Amiga gibt es jedoch nur einen Entpacker. Arj wurde 1990-93 von Robert Jung entwickelt, die Amiga-Protierung stammt von Andreas Kleinert.

Postfix der Archive: .arj

RAR

Und noch ein aktueller PC-Archiver, für den es nur ein Unpack-Programm für den Amiga gibt. Das UnRAR stammt von Eugene Roshal und die Amiga-UnRAR-Portierung stammt von Andrea Vallinotto und unterstützt jedoch keine SFX-Archive.

Postfix der Archive: .rar

XPK

Eigentlich nicht direkt in diese Gruppe gehört das XPK-Paket, das aber doch erwähnenswert ist. :)

Das XPK-Paket bietet mit der XPKMaster.library eine einheitliche Schnittstelle für Programmierer zu den Sublibraries, die dann die einzelnen Komprimierungs- und Verschlüsselungsalgorithemen implementieren.

Dadurch läßt sich ein Programm relativ einfach für viele verschiedene Komprimierungen anpassen und dann kann der User je nach Ausstattung und Vorliebe einen Packer aussuchen. Einige bekannte Beispiel für die XPK-Sublibs sind:

zoo

Unter den alten Vertretern der Archiver findet sich zoo. Von der Verwendung von zoo ist sehr abzuraten, stattdessen sollte LhA oder LZX verwendet werden. Die PC-Version stammt von Rahul Dhesi (1988), die Amiga-Portierung machte J. Brian Walters.

Postfix der Archive: .zoo

arc

Ein *sehr* alter Archiver, der vermutlich aus der Zeit von 1985/86/87 stammt. Wer noch arc-Files bei sich rumliegen hat, wird vermutlich diesen Artikel nicht brauchen und besser darüber Bescheid wissen, als ich. :)

Autoren: Raymond S. Brand und/oder System Enhancement Associates

Postfix der Archive: .arc

DMS

DMS, das Disk-Masher-System, ist kein Filearchiver, sondern, wie der Name schon sagt, für ganze Disketten da. DMS packt eine Diskette blockweise. Es gibt verschiedene Versionen von DMS. Die Hauptunterscheidung bestehen zwischen der älteren, orginalen Version von SDS Software und der späteren, als DMS-Professional bezeichneten, von ParCon.

Da DMS (Pro) ganze Diskette packt und die Disketten-Struktur beibehält, wurde er hauptsächliche für Demos und Raubkopien verwendet, da er manche Kopierschutzmechanismen umging. Ob DMS Pro von ParCon-Software eine legale Fortführung von DMS ist, ist dem Autor nicht bekannt.

Da zur heutigen Festplatten-Zeit Programme sowieso auf Festplatte installierbar sein müssen, ist von der Verwendung von DMS abzuraten, da für Filearchive LhA/LZX besser geeignet sind. Auch von der Verwendung der FMS (File-Masher-System) und SFX-Funktion des DMS Pro ist abzuraten.

Postfix der Archive: .dms

Zum Abschluss noch ein Geschwindigkeitsvergleich. Der Test wurde auf einem A2000/040/33MHz gemacht. Die Größe der verwendeten Daten stehen bei. Zum Test habe ich nur die am häufigsten verwendeten Archiver genommen, für die eine Amiga-Portierung existiert.


Geschwindigkeiten
PackenEntpacken
LhA LZX ZIP GZip LhA LZX ZIP GZip
Text (30KB) 3sec
33%
3sec
33%
3sec
33%
3sec
33%
1sec 1sec 1sec 1sec
Text (1.2MB) 36sec
50%
70sec
38%
50sec
41%
51sec
41%
17sec 12sec 15sec 15sec
GIF 2sec
100%
2sec
100%
2sec
100%
2sec
100%
1sec 1sec 2sec 2sec
jpeg 13sec
100%
10sec
99%
8sec
100%
7sec
100%
6sec 4sec 4sec 4sec
Binaer (51KB) 3sec
40%
5sec
33%
4sec
38%
3sec
38%
2sec 1sec 2sec 1sec
binaer (759KB) 24sec
56%
34sec
49%
33sec
54%
29sec
55%
14sec 13sec 11sec 10sec
alle Dateien (ca. 2.3MB) 67sec
51%
120sec
48%
91sec
51%
n/a 39sec 32sec 39sec n/a

Anmerkung:Die oben angegebenen Werte wurden mit einem A2000/040 erstellt und können bestenfalls als Näherung gelten. Beim Packen wurde jedesmal der beste Packalgorithmus, der zur Verfügung stand, verwendet. Bei einer geringeren Packratio ist z.B. LZX schneller und kann mit LhA konkurrieren. Desweiteren kam es beim Entpacken der Zip-Archive manchmal zu Checksummenfehlern. Ob dies an einem Fehler im Zip, UnZip oder ein Bedienungsfehler(??) vorlag, war nicht festzustellen. Der Autor vermutet, dass vielleicht ein Bug im verwendeten Zip-Programm vorliegt. (Nicht mit GZip zu verwechseln!)


Prev Inhaltsverzeichnis Next
©`97Der AmZeiger